package com.deer.wms.base.system.dao.bill;


import com.deer.wms.base.system.model.bill.BillInDetailCriteria;
import com.deer.wms.common.core.commonMapper.Mapper;
import com.deer.wms.base.system.model.bill.BillInDetail;
import com.deer.wms.base.system.model.bill.BillInDetailDto;

import java.util.List;

/**
 * 入库单详情 数据层
 * 
 * @author guo
 * @date 2019-05-13
 */
public interface BillInDetailMapper  extends Mapper<BillInDetail>
{

	List<BillInDetailDto> getBillInPlanList(BillInDetailCriteria criteria);

	/**
	 * 入库作业显示入库单对应的明细和物料
	 * @param billId
	 * @return
	 */
	List<BillInDetailDto> findBillInDetailListByBillId(Integer billId);

	/**
	 *  通过单据号查询
	 * @author 李帅辰
	 * @date 16:59 2020/10/30
	 * @params billId
	 * @return java.util.List<com.deer.wms.base.system.model.bill.BillInDetailDto>
	 **/
	List<BillInDetailDto> findBillInDetailListByBillNo(String billNo);

	/**
	 * 入库作业组盘和物料列表
	 * @param billId
	 * @return
	 */
	List<BillInDetailDto> findBillInDetailListsByBillId(Integer billId);

	/**
	 *显示全部
	 * @param billInDetailCriteria
	 * @return
	 */
	List<BillInDetailDto> findList(BillInDetailCriteria billInDetailCriteria);

	/**
     * 查询入库单详情信息
     * 
     * @param billInDetail 入库单详情ID
     * @return 入库单详情信息
     */
	public BillInDetail selectBillInDetailById(Integer billInDetail);
	
	/**
	 *通过单晶编码查询详情
	 * @author 李帅辰
	 * @date 2021/5/27 17:45 
	 * @return com.deer.wms.base.system.model.bill.BillInDetail
	 */
	BillInDetailDto selectBillInDetailByMaterialId(String materialId);

	/**
     * 查询入库单详情列表
     * 
     * @param billInDetail 入库单详情信息
     * @return 入库单详情集合
     */
	public List<BillInDetail> selectBillInDetailList(BillInDetail billInDetail);
	
	/**
     * 删除入库单详情
     * 
     * @param billInDetail 入库单详情ID
     * @return 结果
     */
	public int deleteBillInDetailById(Integer billInDetail);


	/**
	 * 删除入库单详情
	 *
	 * @param billId 入库单ID
	 * @return 结果
	 */
	public int deleteBillInDetailByBillId(Integer billId);
	
	/**
     * 批量删除入库单详情
     * 
     * @param billInDetails 需要删除的数据ID
     * @return 结果
     */
	public int deleteBillInDetailByIds(String[] billInDetails);

	public int saveBillInDatail(BillInDetail billInDetail);

	int updateQUantity(BillInDetail billInDetail);

	/**
	 * 消息队列入库,记录分发记录
	 * @param billInDetail
	 * @return
	 */
	int updateBillInInfo(BillInDetail billInDetail);

}